1. Field of the Invention
The present invention relates to systems and methods for providing streamed media programs and in particular, to a method and apparatus for improving bandwidth allocation while enabling the use of a seek function while streaming media programs to multiple users simultaneously.
2. Description of the Related Art
Media programs are often distributed (e.g., via streaming or download) across a network (e.g., the Internet) to multiple users. Often times, multiple different users may be viewing the same media content. Such viewing is often at a different time/location of the media content. For example, one viewer may be viewing a streamed media content program at the 14 minute mark, while another viewer may be viewing the same streamed media content program at the 35 minute mark. Streaming the same media program to multiple viewers but at different times consumes significant bandwidth. It is desirable to not only enable such streaming but to stream content while minimizing network bandwidth. Such problems may be better understood with a description of prior art streaming technology.
The dissemination and playback of media programs has undergone substantial changes in the past decade. Previously, media programs (which may include audio, video, or both) were disseminated either by analog broadcast (conventional, satellite, or cable) or by dissemination of films to movie theaters.
These traditional dissemination and playback means remain in use after the advent of digital technology. However, digital technologies have had a profound effect on the dissemination and playback of media programs.
First, digital technology permitted the use of digital video recorders (DVRs). DVRs, while similar in function to standard analog video cassette recorders (VCRs), provide a number of additional useful functions including live pause, the ability to record one program while playing back another, and the integration of the electronic program guides with DVR functionality (so that the recordation of media programs could be scheduled far in advance).
Second, digital technology also permitted the dissemination and playback of media programs via the Internet, and with improved signal processing and more and more households with high-speed Internet access (e.g. DSL, fiber, and/or satellite). These methods of dissemination and playback have become competitive with traditional means. Dissemination of media programs via the Internet may occur either by simple downloading, progressive downloading or streaming.
There are multiple different addressing schemes that may be used to stream content to one or more users. Such methods include unicast addressing, broadcast or multicast addressing, and anycast addressing.
For anycast addressing, content from a single sender is routed to the topologically nearest node in a group of potential receivers all identified by the same destination address. In other words, content is routed to a single member of a group of potential receivers that are all identified by the same destination address. Anycast is a one-to-one-of-many association.
Unicast addressing uses a one-to-one association between destination address and network endpoint. Each destination address uniquely identifies a single receiver endpoint. Thus, every user receives their own stream of content directly from the server in a unicast addressing environment.
In broadcast and multicast addressing, a one-to-many association, content is routed from a single sender to multiple endpoints simultaneously in a single transmission. The network automatically replicates content as needed for all network segments that contain an eligible receiver. With multicast addressing, content is delivered to a group of users simultaneously using a strategy that delivers the content over each link of the network only once, creating copies only when the links to the multiple destinations split. Further, in a multicast environment, the multicasting occurs at the IP routing level, where routers create optimal distribution paths for content sent to a multicast destination address spanning tree in real time.
In view of the above, many prior art systems utilize a multicast addressing system to deliver media content programs to one or more users. Using such a system consumes less bandwidth when distributed to multiple users. However, as described above, users may be viewing the same media program at different times. Such viewing may occur based on an initial request from a user or may be caused using a seek function in a viewing application. For example, when something is being streamed to a user, the viewer may seek (e.g., go forward or backward) using a scroll/progress/timeline bar to a different location in the media content being viewed.
In the prior art, when a viewer streams to a new location, a new transmission of the media content program is delivered to the user. Thus, bandwidth is consumed merely by the user seeking to a new location. It is desirable to enable a system to view a media content program at any time within the program desired, thereby enabling a seek operation, while still utilizing multicast addressing.
In addition, prior art systems may utilize peer-to-peer (P2P) software to distribute media content programs. In a P2P system, each user, while downloading a video stream, is simultaneously also uploading that stream to other users, thus contributing to the overall available bandwidth. Arriving streams are typically time delayed (e.g., by a few minutes) compared to the original sources. However, once again, bandwidth is consumed using such techniques and there is no efficient mechanism to perform seek operations while minimizing the bandwidth consumed.
Further, many prior art systems utilize and stream customized/directed advertisements to users with the media content. However, the ability to stream custom or directed advertisements to particular users while in a multicast or P2P environment can be problematic.
The problems described above with downloading and streaming may be better understood with an explanation of prior art progressive downloading and streaming technologies.